struct Abcd<T> {
}

fn iterators_array<T>() []&Abcd<T> {
	return []&Abcd<T>{}
}

fn test_generic_fn_return_array_of_generic_struct() {
	a := iterators_array<f64>()
	println(a)
	assert '$a' == '[]'
}

fn iterators_chan<T>() chan Abcd<T> {
	return chan Abcd<T>{}
}

fn test_generic_fn_return_chan_of_generic_struct() {
	a := iterators_chan<f64>()
	println(a)
	assert typeof(a).name == 'chan Abcd<f64>'
}

fn iterators_map<T>() map[string]&Abcd<T> {
	return map[string]&Abcd<T>{}
}

fn test_generic_fn_return_map_of_generic_struct() {
	a := iterators_map<f64>()
	println(a)
	assert '$a' == '{}'
}
